Slim court

ABSTRACT

A basketball system is disclosed herein. In some embodiments, the system includes a rotatable hoop assembly with a hoop and backboard mounted to a support and rotatable around a vertical axis of rotation to change an angle of the hoop and the backboard relative to a particular geo-position. The system may include a programmable display device that presents a display on a surface based at least in part on the angle of the hoop and the backboard and control logic that sends commands to change the angle of the hoop and backboard relative to the particular geo-position. In some embodiments, a rebounding system is included with a ball guide that directs balls to the particular geo-position before and after a change to the angle of the hoop and the backboard.

BENEFIT CLAIMS; RELATED APPLICATIONS; INCORPORATION BY REFERENCE

This application claims the benefit of U.S. Provisional PatentApplication 63/067,339, filed Aug. 19, 2020, which is herebyincorporated by reference.

TECHNICAL FIELD

The present disclosure generally relates to automated training andgaming systems. In particular, the present disclosure relates to abasketball system configured to simulate shooting from multiplepositions without requiring the shooter to change locations.

BACKGROUND

Basketball is the most popular indoor sport in the world. The ability toshoot a high percentage from anywhere on the court is crucial tobecoming an effective basketball player. Mastering the mechanics ofshooting generally requires several repetitions to help players improvetheir shooting percentage.

One approach to mastering shooting mechanics is to practice shots atvarious distances and angles on a regulation-size basketball court.While this approach allows for practicing in a game-time environment, itmay not be the most efficient or effective way at mastering technique.If practicing solo, the player may be required to fetch their ownrebounds, reducing the number of potential shots taken over a practicesession. Further, it may be difficult for the player to assess problemareas, such as a suboptimal arc on a shot or low-probability shootinglocations. Accessibility is also a concern for players that do not liveclose to a regulation-size basketball court since the size and costrequired to build a court may be prohibitive.

Another approach involves placing multiple basketball hoop assemblies indifferent positions within a compact court, allowing the player tosimulate shooting at different angles from the same location. While thisapproach may increase the shots taken per practice session, the spacingrequirements between the different assemblies typically limits theplayer to shooting from a reduced number of spots. Additionally, thecourt lines with multiple assemblies are generally limited to preventoverlap caused by court lines intersecting from different angles. As aresult, this approach omits useful visual cues for the shooter. Further,installing multiple basketball hoop assemblies may be cost-prohibitivefor many players.

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, it shouldnot be assumed that any of the approaches described in this sectionqualify as prior art merely by virtue of their inclusion in thissection.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments are illustrated by way of example and not by way oflimitation in the figures of the accompanying drawings. It should benoted that references to “an” or “one” embodiment in this disclosure arenot necessarily to the same embodiment, and they mean at least one. Inthe drawings:

FIG. 1A illustrates a side view of a rotatable hoop assembly inaccordance with some embodiments;

FIG. 1B illustrates a front view of a rotatable hoop assembly inaccordance with some embodiments;

FIG. 1C illustrates a top view of a rotatable hoop assembly inaccordance with some embodiments;

FIG. 1D illustrates a rear view of a rotatable hoop assembly inaccordance with some embodiments;

FIG. 2A illustrates a first set of shot locations on a regular court andcorresponding virtual court rotations are illustrated in accordance withsome embodiments;

FIG. 2B illustrates a second set of shot locations on a regular courtand corresponding virtual court rotations are illustrated in accordancewith some embodiments;

FIG. 3 illustrates a discrete set of overlapping line projections inaccordance with some embodiments;

FIG. 4 illustrates an example of how a virtual barrier affects differentrotations of a virtual basketball floor in accordance with someembodiments;

FIG. 5A illustrates a perspective view of a rebounding system inaccordance with some embodiments;

FIG. 5B illustrates a top view of a rebounding system in accordance withsome embodiments;

FIG. 5C illustrates another perspective view of a rebounding system inaccordance with some embodiments;

FIG. 5D illustrates a front view of a rebounding system in a foldedposition in accordance with some embodiments;

FIG. 6 illustrates an example set of operations for using machinelearning to control the basketball system in accordance with someembodiments; and

FIG. 7 shows a block diagram that illustrates a computer system inaccordance with some embodiments.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding. One or more embodiments may be practiced without thesespecific details. Features described in one embodiment may be combinedwith features described in a different embodiment. In some examples,well-known structures and devices are described with reference to ablock diagram form in order to avoid unnecessarily obscuring the presentinvention.

-   -   1. GENERAL OVERVIEW    -   2. ROTATABLE HOOP ASSEMBLY    -   3. ROTATABLE COURT DISPLAYS        -   3.1 PROJECTORS AND FLOOR-BASED DISPLAY DEVICES        -   3.2 LINE PROJECTIONS        -   3.3 OTHER DISPLAY OPTIONS        -   3.4 VIRTUAL BARRIERS    -   4. REBOUNDING SYSTEM    -   5. PROGRAMMED AND CUSTOMIZABLE APPLICATIONS    -   6. SENSOR-BASED ADJUSTMENTS    -   7. MACHINE-LEARNING APPLICATIONS    -   8. COMPUTER NETWORKS AND CLOUD APPLICATIONS    -   9. COMPUTER HARDWARE OVERVIEW    -   10. MISCELLANEOUS; EXTENSIONS

1. General Overview

Embodiments described herein include a basketball system, assembly, andapparatus that simulates shooting at different positions on a court eventhough the player may remain at the same geo-position. In someembodiments, a basketball system includes a rotatable hoop assemblycomprising a hoop and backboard mounted to a support and rotatablearound a vertical axis of rotation to change an angle of the hoop andthe backboard relative to a particular geo-position. The rotatable hoopassembly may further comprise or be coupled to a motor that causes thehoop and backboard to rotate around the vertical axis of rotationresponsive to receiving control signals.

In some embodiments, the basketball system includes one or moreprogrammable display devices that present a display on a playing surfacebased on the angle of the hoop and the backboard. The display maysimulate the lines of a basketball court that rotate or otherwise changeposition as the hoop assembly rotates. Additionally or alternatively,the display may include other projections, such as virtual defenderpositions, recommended routes for a player to take, and court locationsfor a player to shoot.

In some embodiments, the basketball system includes control logic thatsends commands to change the angle of the rotatable hoop assembly,including the hoop and the backboard, relative to a particulargeo-position. Responsive to receiving the control signals, a controller,included or coupled to the rotatable hoop assembly, may turn therotatable hoop assembly to the specified angle relative to theparticular geo-position.

In some embodiments, the basketball system includes a rebounding systemassembly comprising a ball guide that directs balls to the particulargeo-position before and after a change to the angle of the rotatablehoop assembly relative to the particular geo-position. Stated anotherway, the rebounding system assembly may be configured in someembodiments such that the direction of the rebound is not affected bythe rotation of the hoop. Thus, a player may practice shots frommultiple angles from the same geo-position without having to move tofetch rebounds.

In some embodiments, the basketball system includes one or more sensorsto capture data useful to assessing player technique. For example, thesensors may detect if a shot is made, the angle of the shot, the arc ofa shot, the speed of a shot, and/or the distance of the shot.Additionally or alternatively, the sensors may detect player attributes,such as the player height, and/or environmental characteristics, such asthe slope of the court surface.

In some embodiments, the basketball system is programmable to transitionbetween different angles at varying points in time. For example, a usermay define two or more angles and transition times between the two ormore angles. In response, the control logic may send commands to changethe angle of the basketball hoop and backboard in accordance with theprogrammed transition times and angles.

In some embodiments, the basketball system uses machine learning tocontrol the rotation of the hoop assembly and/or the display on thecourt. A machine learning (ML) process may include training an ML modelto compute a respective angle for the hoop and backboard relative to aparticular geo-position based on user attributes. Additionally oralternatively, the ML process may train the ML model to computerecommended shot locations, routes, defender positions, ball arcs,and/or other items that may be presented through the one or more displaydevices. The trained ML model may then be applied to data associatedwith a particular user of the basketball system to determine: (a) how tochange the angle of the rotatable hoop assembly relative to a particulargeo-position, (b) what to present via the one or more programmabledisplay devices, and/or (c) transition times between different anglesand/or displays. Based on the output of the ML model, commands may besent at a particular time to cause the hoop and the backboard to rotateuntil the angle computed by the ML model is reached and/or to update theone or more programmable display devices.

In some embodiments, an ML model may be applied to optimize trainingroutines for a particular user based on the user attributes. Forexample, the ML model may be applied to compute a sequence of shotangles and transition times that the ML model estimates are most likelyto improve the shooter's shot percentage given the user's attributes.Additionally or alternatively, the ML model may cause the one or moreprogrammable display devices to present recommended shot locationsand/or routes that are estimated to improve the player's technique giventhe user's attributes.

One or more embodiments described in this Specification and/or recitedin the claims may not be included in this General Overview section.

2. Rotatable Hoop Assembly

In some embodiments, a rotatable hoop assembly allows the basketballsystem to simulate different shooting angles relative to the samegeo-position, where a geo-position may correspond to a physical locationrepresented as a latitude, longitude, and altitude. The rotatable hoopassembly may be configured to rotate a hoop and backboard clockwiseand/or counterclockwise around a vertical axis. A rotation of 180degrees may be used to simulate a shot from any angle on a court.However, in other implementations, the full range of rotation may begreater than or less than 180 degrees.

FIGS. 1A-1D illustrate multiple views of rotatable hoop assembly 100 inaccordance with some embodiments. In one or more embodiments, rotatablehoop assembly 100 may include more or fewer components than thecomponents illustrated in FIGS. 1A-1D. In some instances, multiplecomponents may be integrated into a single component or broken intomultiple other components within rotatable hoop assembly 100.

FIG. 1A illustrates a side view of rotatable hoop assembly 100 inaccordance with some embodiments. Rotatable hoop assembly 100 includesbasketball hoop 102, hoop mount 104, backboard 106, backboard mount 108,axle 110, control unit 112, and support mounts 114 a-b. As illustrated,hoop 102 is coupled to backboard 106 via hoop mount 104. Backboard 106is further coupled to axle 110 via backboard mount 108, which includesthree slots through which axle 110 is inserted. Axle 110 is furthercoupled to support structure 114 a and control unit 112. Supportstructure 114 a is coupled to control unit 112 and support structure 114b. Support structure 114 b further includes a pole mount 116, allowinghoop assembly 100 to be quickly attached to or removed from othersupport structures, such as pole 118. In other embodiments, rotatablehoop assembly 100 may be directly integrated into pole 118, such as viawelding or other bonding techniques. Thus, rotatable hoop assembly maybe detachable or non-detachable depending on the particularimplementation.

FIG. 1B illustrates a front view of rotatable hoop assembly 100 inaccordance with some embodiments. From the front perspective, hoop 102can be seen mounted to backboard 106. If backboard 106 is made withtransparent material, such as tempered glass or fiberglass, thenbackboard mount 108 may be seen. In some embodiments, backboard 106 andhoop 102 conform to regulation-size dimensions and construction.However, the size and materials used may vary depending on theparticular implementation. Other example materials includepolycarbonate, acrylic, steel, wood, aluminum, and plastic material.Additionally or alternatively, the shape, structure and number of themounts and fasteners may vary from implementation to implementation. Forexample, different mounts may be integrated into a single mount or asingle mount may be split across two or more mounts. Example fastenersfor coupling components may include bolts, screws, nuts, nails, welds,and other bonding materials.

FIG. 1C illustrates a top view of rotatable hoop assembly 100 inaccordance with some embodiments. From the top perspective, control unit112 may be seen relative to hoop 102 and backboard 106. Control unit 112may include a motor that turns axle 110 clockwise or counterclockwisearound a vertical axis of rotation responsive to control signals. Therotation of axle 110 causes backboard mount 108, backboard 106, hoopmount 104, and hoop 102 to also rotate around the vertical axis. Theother components of rotatable hoop assembly 100 may remained fixed suchthat they do not rotate as axle 110 turns.

FIG. 1D illustrates a rear view of rotatable hoop assembly 100 inaccordance with some embodiments. From the rear perspective, the backplate of pole mount 116 may be seen relative to pole 118. Pole mount 116may keep the components of rotatable hoop assembly 100 securely fastenedto pole 118 during rotation. Pole 118 remains fixed and does not rotateduring operation.

In some embodiments, control unit 112 includes a motor that is coupledto axle 110 and one or more hardware processors electrically coupled tothe motor. A hardware processor may electrically instigate or otherwiseactuate the motor to rotate clockwise or counterclockwise until hoop 102and backboard 106 have reached a particular angle of rotation. In otherembodiments, the motor may be actuated without a hardware processor. Forexample, a switch may be coupled to pole 118 and connected via a wire tothe motor. A user may then press the switch one direction to cause themotor to rotate hoop 102 and backboard 106 clockwise and anotherdirection to rotate the components counterclockwise.

In some embodiments, control unit 112 includes a wireless transceiversuch that the rotation of rotatable hoop assembly 100 may be wirelesslycontrolled. A wireless transceiver or radio-frequency (RF) module maygenerally comprise a set of components for communicating wirelessly withanother device, such as mobile phones, laptops, or other remote-controlsystems. Example components may include (a) an antenna for detectingand/or transmitting radio waves; (b) a receiver circuit fordemodulating, decoding, and/or otherwise processing incoming wirelesssignals; (c) a transmitter circuit for modulating, encoding, and/orotherwise processing outbound wireless signals; and (d) an interface forcommunicating with a microcontroller, microprocessor, and/or otherhardware processor. Responsive to receiving a wireless control signal toadjust the angle of rotation, the RF module may decode the signal toidentify that angle of rotation specified. The motor may then beactuated to rotate hoop 102 and backboard 106 until the specified angleis reached. Additionally or alternatively, the RF module may transmitdata to a remote system including the current angle of the hoop andperformance statistics. The wireless module may implement one or morewireless communication protocols to transmit and/or receive data.Example wireless communication protocols include Wi-Fi, Bluetooth,Zigbee, and Z-Wave.

In some embodiments, rotatable hoop assembly 100 includes a set of oneor more sensors (not illustrated) for capturing performance and/orenvironmental attributes. For example, rotatable hoop assembly 100 mayinclude a camera, which may be embedded in backboard 106 or otherwisecoupled to one or more system components. Additionally or alternatively,rotatable hoop assembly 100 may include other sensors. Examples includeinfrared scoring sensors under the basketball rim to track whether shotsare made or missed and laser sensors to detect short arcs, ball speed,player positions, and/or other performance metrics. Control unit 112 mayuse the sensor measurements to compute the angle and/or height of hoop102 and backboard 106. Additionally or alternatively, control unit 112may send sensor measurements and/or other sensor-based information to aremote application via the RF module.

3 Rotatable Court Displays 3.1 Projectors and Floor-Based DisplayDevices

As previously mentioned, the basketball system may include a set of oneor more programmable display devices for presenting images on a playingsurface. In some embodiments, the programmable display devices includeone or more projectors. A projector may generally comprise a lightsource, such as a set of lasers or light-emitting diodes (LEDs), animage engine for rendering the images that are displayed by the lightsource, and a lens for projecting and focusing the displayed image. Withlaser projectors, the lens may be omitted, and the image may be directlyprojected using lasers.

In some embodiments, a projector is coupled to or integrated into one ormore components of rotatable hoop assembly 100. For example, a projectormay be mounted to the top, side, or bottom of backboard 106. In otherimplementations, the projector may be embedded and integrated directlyinto backboard 106. In these example implementations, the rotation ofbackboard 106 causes the projector to rotate in the same direction. As aresult, the projected image on the playing surface is also shifted inaccordance with the angle of rotatable hoop assembly 100, therebysimulating a rotating court surface.

In other embodiments, the projector may be coupled to pole 118 oranother location that does not automatically rotate with hoop 102 andbackboard 106. In this case, the projector's image engine maysynchronize the rotation of the projected images with the rotation ofrotatable hoop assembly 100. For example, when a wireless control signalis sent to rotate the hoop, a control signal may also be sent to theprojector to actuate rotation of a set of projected lines to match theangle of the hoop. A controller may be coupled to or integrated directlyinto the projector unit to change the display based on the controlsignals.

In some embodiments, the set of one or more programmable display devicesincludes a set of surface lights, which may be embedded directly intothe playing surface. Some sports floor technologies include LEDsembedded within a playing surface composed of glass, hardwood, and/orother materials. The lines that are displayed on the court may bechanged by switching individual lights on if they are part of a line andoff if they are not part of a line. In some embodiments, each individuallight embedded in the playing surface may be controlled wirelessly. Inother embodiments, the embedded lights may be electrically coupled to acontroller that switches the lights on or off.

In some embodiments, a set of lights embedded in the playing surface aresynchronized to change with the rotation of rotatable hoop assembly 100.For example, lights may be switched on and off as the hoop rotates toshift the display of the basketball key, free-throw line, and/orthree-point line to match the corresponding angle. Additionally oralternatively, other lines and/or images may be projected, such as baselines, court boundary lines, shot locations, shot routes, and virtualdefender locations.

The manner in which the embedded lights are synchronized with therotation of rotatable hoop assembly 100 may vary depending on theparticular implementation. In some embodiments, control unit 112 maytransmit signals to wirelessly switch on and off the appropriate lightsbased on the current angle of rotation. In other embodiments, anothercontrol unit or mobile application may coordinate the image projectionwith the rotation. For example, a mobile application may transmitsignals to control unit 112 to adjust the angle of rotatable hoopassembly 100 and concurrently (or nearly concurrently) transmit signalsto the embedded lights (or another control unit coupled thereto) toswitch lights on or off based on the current angle of the hoop.

3.2 Line Projections and Other Images

In some embodiments, the one or more programmable display devices areconfigured to give a player the perception of shooting from differentcourt locations when the player remains in the same geo-position. Thelines that are projected may conform to regulation-size court dimensionsto simulate a game-time environment. The basketball system may furtherallow a user to switch dimensions to simulate different regulationand/or non-regulation courts, such as National Basketball Association(NBA) court lines, National Collegiate Athletic Association (NCAA) courtlines, and high school court lines. The line distances and locations mayvary between different court types.

FIGS. 2A-2B illustrate example images for various angles of a rotatedcourt and the perception of a player on the court in accordance withsome embodiments. The lines that are displayed may be presented on acourt surface via lasers or other lights sources through a projectorand/or embedded court lighting. The example lines are presented forpurposes of clarity and explanation. However, the lines that areprojected may vary depending on the particular implementation. Forexample, the surface may include additional or fewer lines thanpresented. Further, the length, curvature, and/or positions of one ormore lines may vary. Additionally or alternatively, other images mayalso be projected on the court surface.

Referring to FIG. 2A, a first set of shot locations on a regular courtand corresponding virtual court rotations are illustrated in accordancewith some embodiments. Panel 200 illustrates a player's perceivedposition on a basketball court where the player is at the top of thekey. Panel 202 shows the rotated basketball surface and hoop match theplayer's perception in this configuration. The geo-positions are thesame in this perspective. Panel 204 shows the perceived player positionon the right side of the court from a top perspective. To simulate thisshot location, the projected lines may be rotated counterclockwise asshown in panel 206. As can be seen the player may simulate this shotposition without moving geo-positions on the rotated court. Panel 208and panel 212 show two additional shot locations on a regular court withpanel 210 and panel 214 depicting the rotated court lines and hoop togive the player the perception of the corresponding shot locationwithout having to change their geo-position.

Referring to FIG. 2B, a second set of shot locations on a regular courtand corresponding virtual court rotations are illustrated in accordancewith some embodiments. Panel 216, panel 220, and panel 224 showdifferent shot locations on a basketball court. Panel 218, panel 222,and panel 226 show respective rotations in the projected court lines andhoops to simulate the corresponding shot locations. In these examples,the hoop assembly and projected lines are rotated clockwise to simulateshot locations from the left side of the court.

FIG. 3 illustrates a discrete set of overlapping line projections 300 inaccordance with some embodiments. The discrete set corresponds to therotated basketball floor image projections presented in FIGS. 2A-2B.Embedded LEDs or light sources may be placed at these locations tosupport the discrete set of angles. Generally, all lines are not visibleat the same time to prevent visual clutter. The embedded lights mayinstead be configured to turn on one set of lines at a time in thediscrete set based on the current angle of rotation of rotatable hoopassembly 100 to simulate a rotating court.

Although only seven discrete angles are shown in FIG. 3, the number ofsupported angles may be greater or less than seven depending on theparticular implementation. As the number of embedded lights within aplaying surface increase, the number of discrete angles supported mayalso increase. With projectors, a nearly continuous set of angles may besupported. Thus, the number of shot locations simulated relative to agiven geo-position may be a discrete set, such as the most popular shotlocations, or nearly continuous.

In some embodiments, the display devices may project other images inaddition or as an alternative to the shot lines. As previouslymentioned, the other images may include recommended shot locations,virtual defender positions, and recommended dribbling routes. A shotlocation and/or virtual defender position may be presented with a visualindicator, such as an “X” or “O”, at the corresponding court location.Different symbols and/or colors may be used to distinguish between thetwo, which may be concurrently displayed. A recommended route may bepresented by projecting arrows or a sequence of images charting theroute. Additionally or alternatively, the display devices may beprogrammed to display other images on the court surface.

In some embodiments, the one or more programmable display devices mayproject images at surface locations determined based in part on thecurrent angle of rotation of rotatable hoop assembly 100. For example, avirtual defender position may rotate with the hoop and rotatable courtlines to maintain the same perceived location on the court. In otherembodiments, the virtual defender position and/or other images mayremain fixed even as the hoop and projected lines rotate to give theperception of the image changing location as the court rotates. Thus, aportion of a surface display may move while another portion remainsprojected at the same location.

3.3 Virtual Barriers

In some embodiments, virtual barriers may be programmed into thebasketball system. A virtual barrier may define a set of one or moreboundary lines that projected images should not pass. Virtual barriersmay be useful to prevent the programmable display devices fromprojecting images in undesired locations, such as a neighbor's yard oradjacent court.

The manner in which the virtual barriers are defined may vary dependingon the particular implementation. In some embodiments, a user may setvirtual markers in one or more locations or walk a boundary line that istracked via a mobile phone or other device. In other embodiments, theuser may specify the location, such as through global positioningcoordinates entered via a mobile application that interfaces with thebasketball system.

Once a virtual barrier is defined, a projector may be configured toproject images up to the virtual boundary line, but not beyond. Theimage engine may determine which lights map to locations beyond thevirtual barrier. The projector may then disable or otherwise obscurethese lights to prevent their projection. The remaining lights that donot extend past the boundary may be projected as normal.

In some embodiments, the rotation of a projected image accounts for thevirtual barrier. For example, a virtual barrier may be defined on theright and/or left side of a court, preventing projection of a portion ofthe three-point line. As the court lines are rotated, the portion of thelines that are obscured may adjust based on the angle of rotation.

FIG. 4 illustrates the effect of a virtual barrier on lines of arotatable court at various angles in accordance with some embodiments.Panel 400 depicts a rotatable court with two virtual barriers: one onthe left side of the court and one on the right. Both barriers areperpendicular to the base line and obscure a portion of the three-pointline that extend beyond the barrier. In some embodiments, a projectormay turn off lights corresponding to the portions of the three-pointlines that extend beyond the virtual barrier lines. The virtual barrierlines themselves may or may not be projected onto the court surface. Insome embodiments, the user may toggle these lines on or off, which maybe helpful to determine if a barrier has been defined and to makeadjustments to the boundary lines.

Panel 402 depicts the effect of the two virtual barriers on a court thathas been rotated fully clockwise. In this arrangement, the left part ofthe three-point line previously obscured by the left virtual barrier isrotated into view. In addition, a portion of the lines at the top of thekey that were previously visible are blocked from projection.

Panel 404 depicts the effect of the two virtual barriers on a court thathas been rotated fully counterclockwise. In this arrangement, the rightpart of the three-point line previously obscured by the right virtualbarrier is rotated into view. In addition, a portion of the lines at thetop of the key that were previously visible in panel 400 are blockedfrom projection.

4. Rebounding System

In some embodiments, the basketball system includes a rebounding andprogrammable passing system that returns balls to a particulargeo-position. The rebounding and programmable passing system may beimplemented without rotation ability since the player position does notneed to change locations to simulate shots from different angles. As aresult, the number of moving parts in the rebounding system may be smallcompared to a rotating assembly. The rebounding system may also belighter and have a smaller footprint than a rotating counterpart.

The rebounding system may be coupled to, built into, or otherwiseintegrated into a pole or other support structure to which the rotatablebasketball hoop assembly may be attached. In some embodiments, therebounding system comprises a pole mount that attaches to basketballpoles of varying diameters basketball pole. The pole mount may positionand support the weight of the other components of the rebounding system.

In some embodiments, the rebounding system includes a plurality of polesthat are coupled to or directly built into the pole mount. The pluralityof poles may extend upward and outward from the pole mount at differentangles such that the ends of the poles encircle or otherwise encompassrotatable hoop assembly 100. Netting or other material may be attachedor otherwise coupled to the poles to catch made and missed shots withinthe vicinity of rotatable hoop assembly 100.

In some embodiments, the rebounding system includes a ball guide todirect balls back to a particular geo-position, which may generallycorrespond to the shooting location of a player. A ball guide mayinclude a ramp and/or a passing machine. A ramp may be purely mechanicalwhereas a passing machine is an electro-mechanical motorized device. Aramp is generally lighter weight and less costly. However, a passingmachine may increase the speed and consistency of rebounds.

FIGS. 5A-5D illustrates example implementations of rebounding system 500in accordance with some embodiments. In one or more embodiments,rebounding system 500 may include more or fewer components than thecomponents illustrated in FIGS. 5A-5D. In some instances, multiplecomponents may be integrated into a single component or broken intomultiple other components within rebounding system 500.

FIG. 5A illustrates a perspective view of rebounding system 500 inaccordance with some embodiments. Rebounding system includes mounts 502a-b, poles 504 a-e and ball ramp 506. Mount 502 a attaches to abasketball pole, such as pole 118. Mount 502 a is further coupled topoles 504 a-d, with a pole on each corner of the mount extending upwardand outward from the basketball pole. Mount 502 b also attaches to thebasketball pole and is coupled to pole 504 e and ball ramp 506. Thus, inthis configuration there are five poles that support a net encompassingrotatable hoop assembly 100 to catch made and missed shots. In otherembodiments, there may be greater or fewer poles in the configuration.For example, pole 504 e may be removed for a four-pole configuration oranother pole may be added for a six-pole configuration. When a made ormissed shot is caught in the netting, it is funneled down to ball ramp506, which accelerates the ball toward the shooter's geo-position.

FIG. 5B illustrates a top view of rebounding system 500 in accordancewith some embodiments. From this view, poles 504 a-e and ball ramp 506may be seen relative to the hoop. In this configuration, ball ramp 506is off-center. However, the position of ball ramp 506 may vary dependingon the particular implementation. Further the angle of the ramp may beadjusted by a player to change the geo-position where the ball isreturned.

FIG. 5C illustrates another perspective view of rebounding system 500 inaccordance with some embodiments. In this configuration, ball ramp 506is replaced with passing machine 508, which is a motorized device thatreceives balls through an opening in the top and shoot balls out to aparticular geo-position out an opening in the front. In someembodiments, a user may use a mobile application or remote control toadjust the geo-position where the passing machine returns the ball.Additionally or alternatively, the user may adjust the speed, frequency,and/or height at which the passing machine returns the balls.

FIG. 5D illustrates a front view of rebounding system 500 in a foldedposition in accordance with some embodiments. In this configuration,poles 504 a-e are collapsed and folded such that they are touching orsubstantially adjacent to the basketball pole. In some embodiments, auser may use a mobile application or remote control to telescope andfold poles 504 a-e. In response to the wireless control, a motor orother actuator near the base of rebounding system 500 may move poles 504a-e into position, which reduces the footprint of rebounding system 500when not in use.

In some embodiments, rebounding system 500 does not couple to orotherwise touch any of the rotating components of rotatable hoopassembly 100. The distance between poles 504 a-e may be set such thathoop 102 and backboard 106 may freely rotate clockwise andcounterclockwise without affecting rebounding system 500. As the playersimulates different court locations from the same geo-position,rebounding system 500 may remain fixed without rotating as rotatablehoop assembly 100 transitions between different angles. The user maycontrol the passing location of rebounding system 500 independently fromthe control of rotatable hoop assembly 100. For example, as previouslymentioned, the user may remotely control a passing machine using amobile phone application to direct rebounds to different geo-positions.The passing machine may include a mount that allows the machine to beattached to the basketball pole, which may facilitate storage and reducecosts.

In some embodiments, the height of poles 504 a-e are set above hoop 102to force the player to arc the basketball to clear the netting and makea shot. This may help the player improve shooting technique bydeveloping a more optimal shot arc. However, the height of poles 504 a-emay vary depending on the particular implementation and be configurableby the player.

5. Programmed and Customizable Applications

In some embodiments, a player may switch the angle of rotatable hoopassembly 100 on demand. In other embodiments, a program may be run thatcontrols the angle of rotation and transition times between differentangles. The program may be run locally, such as by control unit 112 oron a remote device that sends control signals to turn rotatable hoopassembly 100 at the appropriate transition times.

In some embodiments, a user may specify a set of angles and transitiontimes via a user interface for programming rotatable hoop assembly 100.For example, the user may input <0°, 30s; 90° clockwise, 20s; 180°counterclockwise, 20s> and run the program. In response, the rotatablecourt may remain in the position depicted in panel 202 for 30 seconds,followed by the position depicted in panel 226 for 20 seconds, followedby the position depicted in panel 206 for another 20 seconds. The usermay be allowed to create a loop such that the program iterates throughthe different angles or it may be a one-time execution. Additionally oralternatively, the user may specify a stop time or runtime duration,where the program iterates through the specified angles until the endtime is reached.

The user defining a program may be the player or a trainer. In thelatter scenario, the trainer may share the program with one or moretrainees, such as via a mobile application. The trainee may then accessand run the program using the mobile application, which send the controlsignals to rotatable hoop assembly 100 and the one or more displaydevices in accordance with the specified instructions.

Additionally or alternatively, users may define visual elements toproject on a court surface. For example, a trainer may define a set ofone or more virtual defender locations, a dribbling route around thevirtual defender locations, and a final shot location, which may beprojected onto the playing surface as previously described. The traineror another user may further define a set of different visual projectionsand transition times between the different projections. Thus, the visualprojections may prompt the user to practice different routes aroundvarying defender locations and take shots from different shot locations.

6. Sensor-Based Adjustments

In some embodiments, the basketball system may control rotatable hoopassembly 100 and/or the one or more display devices based on sensormeasurements. For example, a camera may be integrated into thebasketball system as previously described. The camera may detect whetherthe playing surface is sloped, which is common in driveways. Based onthe angle of the slope and the distance of the player, the height of thehoop may be lowered to simulate shooting on a regulation height hoop. Ifthe player moves closer, then the hoop may be raised as a function ofthe slope and player distance. If the player movers farther out, thenthe hoop may be lowered even further.

Additionally or alternatively, the hoop height may automatically be setbased on player height or player recognition. For example, a preferencemay be specified for a child user to set the hoop to seven feet whereasan adult user has a preference for a height of ten feet. The camera maydetect whether a child user or adult user is currently playing. Inresponse to the sensor measurements, control unit 112 may set the heightaccordingly.

In some embodiments, the basketball system sensors include an arcmeasurement sensor. The sensor may be a camera that is placed on theside of the court. By placing the sensor on the side of the court, depthperception is not needed to accurately measure the short arc position.At the side of the court, the camera may have continuous visibility ofthe player and the basketball, allowing the arc measurement to beperformed with image recognition without having to compute depth. As aresult, image processing requirements are significantly less burdensome.

In some embodiments, the basketball system may make adjustments based onarc measurement, shot statistics, and/or other sensor measurements tooptimize practice time for the player. For example, the basketballsystem may identify shot positions where the player has sub-optimal arcand/or a low shot percentage. The basketball system may increase theamount of time the shooter spends at these shooting locations bytransitioning the angles into the player's routine more frequentlyand/or staying at the corresponding rotated court position for a longerperiod of time before transitioning away.

In some embodiments, the basketball system may generate a report basedon the sensor measurements, which may be presented to the user duringand/or after a training session. The report may identify statistics suchas shot locations, the number of shots taken per location, the shootingpercentage at each location, the average arc from each position, and/orother performance metric data. The report may identify recommended areasof practice and areas of strength in a player's game.

7. Machine-Learning Applications

In some embodiments, the basketball system may use machine learning torecommend training routines. Additionally or alternatively, thebasketball system may use machine learning to control the rotatablecourt positioning and surface display. An ML process may includeapplying a trained ML model to data associated with a particular user ofthe basketball system to determine: (a) how to change the angle of therotatable hoop assembly relative to a particular geo-position, (b) whatto present via the one or more programmable display devices, and/or (c)transition times between different angles and/or displays. Based on theoutput of the ML model, commands may be sent at a particular time tocause the hoop and the backboard to rotate until the angle computed bythe ML model is reached and/or to update the one or more programmabledisplay devices to change the images projected onto the playing surface.

In some embodiments, an ML model may be applied to optimize trainingroutines for a particular user based on the user attributes. Forexample, the ML model may be applied to compute a sequence of shotangles and transition times that the ML model estimates are most likelyto improve the shooter's shot percentage given the user's attributes.Additionally or alternatively, the ML model may cause the one or moreprogrammable display devices to present recommended shot locationsand/or routes that are estimated to improve the player's technique giventhe user's attributes.

FIG. 6 illustrates an example set of operations for using machinelearning to control the basketball system in accordance with someembodiments. One or more operations illustrated in FIG. 6 may bemodified, rearranged, or omitted all together. Accordingly, theparticular set of operations illustrated in FIG. 6 should not beconstrued as limiting the scope of one or more embodiments.

Referring to FIG. 6, the process includes training one or more ML models(operation 602). The ML models that are trained may vary fromimplementation to implementation. Example ML models may includeartificial neural networks, support vector machines (SVMs), decisiontrees, and cluster models. The training process may vary depending onthe particular type of ML model that is trained. For example, anartificial neural network may comprise an input layer including a firstset of nodes (also referred to as ‘neurons” or “cells), a hidden layerincluding a second set of nodes, and an output layer including a thirdset of one or more nodes. The training process may adjust cellparameters, such as weights and biases, using a set of labeled orunlabeled training examples by performing backpropagation to minimizethe gradient of a loss function. As another example, the set of trainingexamples may be used to compute the boundaries of a hyperplane in a SVMor to compute cluster centroids with k-means clustering with k clusterswhere k may represent different practice parameters such as angle ofrotation.

In some embodiments, the training process trains the ML model to computeone or more control parameters of the basketball system based on a setof user attributes and/or the current state of the system. For example,the ML model may compute the optimal next angle in a sequence oftransitions as a function of (a) the user's shot percentage fromdifferent angles in the current and/or previous training sessions; (b)shot arc measurements from different shooting angles; (c) the amount oftime spent practicing from different angles; (d) the current angle ofrotation of the basketball hoop assembly and rotatable court; and/or (e)the sequence of preceding angles in the training session. An “optimal”angle in this context may be one that is predicted to improve one ormore performance metrics relating to the player's technique, such asshot percentage and ball arc metrics. The training process may generatea set of feature vectors based on one or more of the above features forthe set of training examples and use the feature vectors to train an MLmodel.

The training process may be unsupervised or supervised depending on theparticular implementation. With unsupervised training, the set oftraining examples may be unlabeled. The training process may train theML model based on derivatives in performance metrics included in thetraining examples. For example, the training process may train the MLmodel to estimate which sequence of angles yielded the greatesttechnique improvements or which predefined training programs yield thebest performance results for a plurality of different players. Withsupervised training, the set of training examples are labeled, which mayallow an administrator to inject domain knowledge into the system. Forexample, the administrator may label examples of training programs aseffective or not effective. The ML model may then be trained to estimatelabels based on the examples.

In some embodiments, the process further comprises generating a featurevector for a user of the basketball system (operation 604). The featurevector may comprise user attributes and/or attributes of the currentsession. One or more feature values may be extracted from sensormeasurements for the current session, such as current shot percentagesfrom different angles, overall shot percentage, arc measurements, andpractice time spent at varying angles. User attributes such as height,age, player position, and/or other values may also be extracted based oninformation input into the system via a mobile application or othermeans. A feature vector may be formed by collating or otherwiseaggregating the set of feature values into a vector. For non-numericvalues, an encoding technique such as one hot encoding may be used totransform the values. Additionally or alternatively, one or more featurevalues may be normalized and/or scaled. The feature vector may be formedin the same manner used to generate the training set feature vectors.

In some embodiments, the process applies the trained ML model using thefeature vector to compute control parameters and/or recommendations(operation 606). For example, the trained ML model may be applied tocompute the next angle of rotation in a sequence and/or displayparameters to project on the playing surface. As another example, thetrained ML model may identify a set of training routines most likely tobe helpful to the user. If a neural network is used, the ML model may beapplied by inputting the feature vector into the model and performingforward propagation. In response, the cell weights, biases, and/or otherparameters may be applied to compute an angle and/or other controlparameters. In a cluster-based model, the feature vector may be assignedto a particular cluster corresponding to a set of control parametersbased on which cluster centroid is closest to the feature vector.

In some embodiments, the process sends control signals to adjust thebasketball system and/or presents recommendations to user based on theoutput of the ML model (operation 608). For example, the process maysend control signals to control unit 112 to cause rotatable hoopassembly 100 to rotate until an angle computed by the ML model isreached. Additionally or alternatively the process may send controlsignals to adjust the display projected on the court surface by the oneor more display devices. As another example, the process may present aset of one or more recommended training routines, such as via a mobileinterface application, based on the output of the ML model. The user maythen select one of the presented routines to run the program and controlthe operation of the basketball system.

8. Computer Networks and Cloud Applications

In some embodiments, the basketball system may be integrated with acloud application or service. A cloud service may be deployed on one ormore computer networks, examples which are described further below. Auser may subscribe to a cloud service, which may authenticate the user,save user preferences, track user performance metrics, recommendtraining routines, run applications, and/or send control signals to thebasketball system.

In some embodiments, a user may use the cloud service to schedule and/orpay for training sessions using the basketball system. Additionally oralternatively, a user may use the cloud service to unlock and enter afacility where the basketball system is deployed. For example, thefacility may be managed by a company which restricts access tosubscribing customers. A subscribing customer may download and install amobile application on a smartphone and/or other network host device. Themobile application may interact with a cloud service to authenticate theuser, and the user may use the mobile application to unlock the door tothe training facility if scheduled for a training slot at the time. Thisallows for a facility to be unmanned, which reduces overall systemcosts. Camera-based security systems may be deployed to enforce timelimits within the facility.

In some embodiments, the cloud service may recommend a set of trainingroutines to players in the facility. The cloud service may applymachine-learning, as previously described, to match the player'sattributes to a routine that is most likely to be effective for the useror that similar users are most likely to select. If the user selects theroutine, then it may be run to control the rotatable hoop assembly andfloor projections based on the defined logic.

In some embodiments, the cloud service is run in a computer network,where the computer network provides connectivity among a set of nodes.The nodes may be local to and/or remote from each other. The nodes areconnected by a set of links. Examples of links include a coaxial cable,an unshielded twisted cable, a copper cable, an optical fiber, and avirtual link. A subset of nodes may implement a computer network.Examples of such nodes include a switch, a router, a firewall, and anetwork address translator (NAT). Another subset of nodes uses thecomputer network. Such nodes (also referred to as “hosts”) may execute aclient process and/or a server process. A client process makes a requestfor a computing service (such as, execution of a particular application,and/or storage of a particular amount of data). A server processresponds by executing the requested service and/or returningcorresponding data.

A computer network may be a physical network, including physical nodesconnected by physical links. A physical node is any digital device. Aphysical node may be a function-specific hardware device, such as ahardware switch, a hardware router, a hardware firewall, and a hardwareNAT. Additionally or alternatively, a physical node may be a genericmachine that is configured to execute various virtual machines and/orapplications performing respective functions. A physical link is aphysical medium connecting two or more physical nodes. Examples of linksinclude a coaxial cable, an unshielded twisted cable, a copper cable,and an optical fiber.

A computer network may be an overlay network. An overlay network is alogical network implemented on top of another network (such as, aphysical network). Each node in an overlay network corresponds to arespective node in the underlying network. Hence, each node in anoverlay network is associated with both an overlay address (to addressto the overlay node) and an underlay address (to address the underlaynode that implements the overlay node). An overlay node may be a digitaldevice and/or a software process (such as, a virtual machine, anapplication instance, or a thread) A link that connects overlay nodes isimplemented as a tunnel through the underlying network. The overlaynodes at either end of the tunnel treat the underlying multi-hop pathbetween them as a single logical link. Tunneling is performed throughencapsulation and decapsulation.

In some embodiments, a client may be local to and/or remote from acomputer network. The client may access the computer network over othercomputer networks, such as a private network or the Internet. The clientmay communicate requests to the computer network using a communicationsprotocol, such as Hypertext Transfer Protocol (HTTP). The requests arecommunicated through an interface, such as a client interface (such as aweb browser), a program interface, or an application programminginterface (API).

In some embodiments, a computer network provides connectivity betweenclients and network resources. Network resources include hardware and/orsoftware configured to execute server processes. Examples of networkresources include a processor, a data storage, a virtual machine, acontainer, and/or a software application. Network resources are sharedamongst multiple clients. Clients request computing services from acomputer network independently of each other. Network resources aredynamically assigned to the requests and/or clients on an on-demandbasis. Network resources assigned to each request and/or client may bescaled up or down based on, for example, (a) the computing servicesrequested by a particular client, (b) the aggregated computing servicesrequested by a particular tenant, and/or (c) the aggregated computingservices requested of the computer network. Such a computer network maybe referred to as a “cloud network.”

In some embodiments, a service provider provides a cloud network to oneor more end users. Various service models may be implemented by thecloud network, including but not limited to Software-as-a-Service(SaaS), Platform-as-a-Service (PaaS), and Infrastructure-as-a-Service(IaaS). In SaaS, a service provider provides end users the capability touse the service provider's applications, which are executing on thenetwork resources. In PaaS, the service provider provides end users thecapability to deploy custom applications onto the network resources. Thecustom applications may be created using programming languages,libraries, services, and tools supported by the service provider. InIaaS, the service provider provides end users the capability toprovision processing, storage, networks, and other fundamental computingresources provided by the network resources. Any arbitrary applications,including an operating system, may be deployed on the network resources.

In some embodiments, various deployment models may be implemented by acomputer network, including but not limited to a private cloud, a publiccloud, and a hybrid cloud. In a private cloud, network resources areprovisioned for exclusive use by a particular group of one or moreentities (the term “entity” as used herein refers to a corporation,organization, person, or other entity). The network resources may belocal to and/or remote from the premises of the particular group ofentities. In a public cloud, cloud resources are provisioned formultiple entities that are independent from each other (also referred toas “tenants” or “customers”). The computer network and the networkresources thereof are accessed by clients corresponding to differenttenants. Such a computer network may be referred to as a “multi-tenantcomputer network.” Several tenants may use a same particular networkresource at different times and/or at the same time. The networkresources may be local to and/or remote from the premises of thetenants. In a hybrid cloud, a computer network comprises a private cloudand a public cloud. An interface between the private cloud and thepublic cloud allows for data and application portability. Data stored atthe private cloud and data stored at the public cloud may be exchangedthrough the interface. Applications implemented at the private cloud andapplications implemented at the public cloud may have dependencies oneach other. A call from an application at the private cloud to anapplication at the public cloud (and vice versa) may be executed throughthe interface.

In some embodiments, tenants of a multi-tenant computer network areindependent of each other. For example, a business or operation of onetenant may be separate from a business or operation of another tenant.Different tenants may demand different network requirements for thecomputer network. Examples of network requirements include processingspeed, amount of data storage, security requirements, performancerequirements, throughput requirements, latency requirements, resiliencyrequirements, Quality of Service (QoS) requirements, tenant isolation,and/or consistency. The same computer network may need to implementdifferent network requirements demanded by different tenants.

In some embodiments, in a multi-tenant computer network, tenantisolation is implemented to ensure that the applications and/or data ofdifferent tenants are not shared with each other. Various tenantisolation approaches may be used.

In some embodiments, each tenant is associated with a tenant ID. Eachnetwork resource of the multi-tenant computer network is tagged with atenant ID. A tenant is permitted access to a particular network resourceonly if the tenant and the particular network resources are associatedwith a same tenant ID.

In some embodiments, each tenant is associated with a tenant ID. Eachapplication, implemented by the computer network, is tagged with atenant ID. Additionally or alternatively, each data structure and/ordataset, stored by the computer network, is tagged with a tenant ID. Atenant is permitted access to a particular application, data structure,and/or dataset only if the tenant and the particular application, datastructure, and/or dataset are associated with a same tenant ID.

As an example, each database implemented by a multi-tenant computernetwork may be tagged with a tenant ID. Only a tenant associated withthe corresponding tenant ID may access data of a particular database. Asanother example, each entry in a database implemented by a multi-tenantcomputer network may be tagged with a tenant ID. Only a tenantassociated with the corresponding tenant ID may access data of aparticular entry. However, the database may be shared by multipletenants.

In some embodiments, a subscription list indicates which tenants haveauthorization to access which applications. For each application, a listof tenant IDs of tenants authorized to access the application is stored.A tenant is permitted access to a particular application only if thetenant ID of the tenant is included in the subscription listcorresponding to the particular application.

In some embodiments, network resources (such as digital devices, virtualmachines, application instances, and threads) corresponding to differenttenants are isolated to tenant-specific overlay networks maintained bythe multi-tenant computer network. As an example, packets from anysource device in a tenant overlay network may only be transmitted toother devices within the same tenant overlay network. Encapsulationtunnels are used to prohibit any transmissions from a source device on atenant overlay network to devices in other tenant overlay networks.Specifically, the packets, received from the source device, areencapsulated within an outer packet. The outer packet is transmittedfrom a first encapsulation tunnel endpoint (in communication with thesource device in the tenant overlay network) to a second encapsulationtunnel endpoint (in communication with the destination device in thetenant overlay network). The second encapsulation tunnel endpointdecapsulates the outer packet to obtain the original packet transmittedby the source device. The original packet is transmitted from the secondencapsulation tunnel endpoint to the destination device in the sameparticular overlay network.

9. Computer Hardware Overview

According to some embodiments, the basketball system may include one ormore special-purpose computing devices for implementing one or more ofthe previously described techniques. The special-purpose computingdevices may be hard-wired to perform the techniques, or may includedigital electronic devices such as one or more application-specificintegrated circuits (ASICs), field programmable gate arrays (FPGAs), ornetwork processing units (NPUs) that are persistently programmed toperform the techniques, or may include one or more general purposehardware processors programmed to perform the techniques pursuant toprogram instructions in firmware, memory, other storage, or acombination. Such special-purpose computing devices may also combinecustom hard-wired logic, ASICs, FPGAs, or NPUs with custom programmingto accomplish the techniques. The special-purpose computing devices maybe desktop computer systems, portable computer systems, handhelddevices, networking devices or any other device that incorporateshard-wired and/or program logic to implement the techniques.

For example, FIG. 7 is a block diagram that illustrates computer system700 upon which some embodiments may be implemented. Computer system 700includes bus 702 or other communication mechanism for communicatinginformation, and a hardware processor 704 coupled with bus 702 forprocessing information. Hardware processor 704 may be, for example, ageneral-purpose microprocessor.

Computer system 700 also includes main memory 706, such as arandom-access memory (RAM) or other dynamic storage device, coupled tobus 702 for storing information and instructions to be executed byprocessor 704. Main memory 706 also may be used for storing temporaryvariables or other intermediate information during execution ofinstructions to be executed by processor 704. Such instructions, whenstored in non-transitory storage media accessible to processor 704,render computer system 700 into a special-purpose machine that iscustomized to perform the operations specified in the instructions.

Computer system 700 further includes read only memory (ROM) 708 or otherstatic storage device coupled to bus 702 for storing static informationand instructions for processor 704. Storage device 710, such as amagnetic disk or optical disk, is provided and coupled to bus 702 forstoring information and instructions.

Computer system 700 may be coupled via bus 702 to display 712, such as acathode ray tube (CRT) or light emitting diode (LED) monitor, fordisplaying information to a computer user. Input device 714, which mayinclude alphanumeric and other keys, is coupled to bus 702 forcommunicating information and command selections to processor 704.Another type of user input device is cursor control 716, such as amouse, a trackball, touchscreen, or cursor direction keys forcommunicating direction information and command selections to processor704 and for controlling cursor movement on display 712. Input device 714typically has two degrees of freedom in two axes, a first axis (e.g., x)and a second axis (e.g., y), that allows the device to specify positionsin a plane.

Computer system 700 may implement the techniques described herein usingcustomized hard-wired logic, one or more ASICs or FPGAs, firmware and/orprogram logic which in combination with the computer system causes orprograms computer system 700 to be a special-purpose machine. Accordingto some embodiments, the techniques herein are performed by computersystem 700 in response to processor 704 executing one or more sequencesof one or more instructions contained in main memory 706. Suchinstructions may be read into main memory 706 from another storagemedium, such as storage device 710. Execution of the sequences ofinstructions contained in main memory 706 causes processor 704 toperform the process steps described herein. In alternative embodiments,hard-wired circuitry may be used in place of or in combination withsoftware instructions.

The term “storage media” as used herein refers to any non-transitorymedia that store data and/or instructions that cause a machine tooperate in a specific fashion. Such storage media may comprisenon-volatile media and/or volatile media. Non-volatile media includes,for example, optical or magnetic disks, such as storage device 710.Volatile media includes dynamic memory, such as main memory 706. Commonforms of storage media include, for example, a floppy disk, a flexibledisk, hard disk, solid state drive, magnetic tape, or any other magneticdata storage medium, a CD-ROM, any other optical data storage medium,any physical medium with patterns of holes, a RAM, a PROM, and EPROM, aFLASH-EPROM, NVRAM, any other memory chip or cartridge,content-addressable memory (CAM), and ternary content-addressable memory(TCAM).

Storage media is distinct from but may be used in conjunction withtransmission media. Transmission media participates in transferringinformation between storage media. For example, transmission mediaincludes coaxial cables, copper wire and fiber optics, including thewires that comprise bus 702. Transmission media can also take the formof acoustic or light waves, such as those generated during radio-waveand infra-red data communications.

Various forms of media may be involved in carrying one or more sequencesof one or more instructions to processor 704 for execution. For example,the instructions may initially be carried on a magnetic disk orsolid-state drive of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over anetwork line, such as a telephone line, a fiber optic cable, or acoaxial cable, using a modem. A modem local to computer system 700 canreceive the data on the network line and use an infra-red transmitter toconvert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 702. Bus 702 carries the data tomain memory 706, from which processor 704 retrieves and executes theinstructions. The instructions received by main memory 706 mayoptionally be stored on storage device 710 either before or afterexecution by processor 704.

Computer system 700 also includes a communication interface 718 coupledto bus 702. Communication interface 718 provides a two-way datacommunication coupling to a network link 720 that is connected to alocal network 722. For example, communication interface 718 may be anintegrated services digital network (ISDN) card, cable modem, satellitemodem, or a modem to provide a data communication connection to acorresponding type of telephone line. As another example, communicationinterface 718 may be a local area network (LAN) card to provide a datacommunication connection to a compatible LAN. Wireless links may also beimplemented. In any such implementation, communication interface 718sends and receives electrical, electromagnetic or optical signals thatcarry digital data streams representing various types of information.

Network link 720 typically provides data communication through one ormore networks to other data devices. For example, network link 720 mayprovide a connection through local network 722 to a host computer 724 orto data equipment operated by an Internet Service Provider (ISP) 726.ISP 726 in turn provides data communication services through theworldwide packet data communication network now commonly referred to asthe “Internet” 728. Local network 722 and Internet 728 both useelectrical, electromagnetic or optical signals that carry digital datastreams. The signals through the various networks and the signals onnetwork link 720 and through communication interface 718, which carrythe digital data to and from computer system 700, are example forms oftransmission media.

Computer system 700 can send messages and receive data, includingprogram code, through the network(s), network link 720 and communicationinterface 718. In the Internet example, a server 730 might transmit arequested code for an application program through Internet 728, ISP 726,local network 722 and communication interface 718.

The received code may be executed by processor 704 as it is received,and/or stored in storage device 710, or other non-volatile storage forlater execution.

10. Miscellaneous; Extensions

Embodiments are directed to a system with one or more devices thatinclude a hardware processor and that are configured to perform any ofthe operations described herein and/or recited in any of the claimsbelow.

In some embodiments, a non-transitory computer readable storage mediumcomprises instructions which, when executed by one or more hardwareprocessors, causes performance of any of the operations described hereinand/or recited in any of the claims.

Any combination of the features and functionalities described herein maybe used in accordance with one or more embodiments. In the foregoingspecification, embodiments have been described with reference tonumerous specific details that may vary from implementation toimplementation. The specification and drawings are, accordingly, to beregarded in an illustrative rather than a restrictive sense. The soleand exclusive indicator of the scope of the invention, and what isintended by the applicants to be the scope of the invention, is theliteral and equivalent scope of the set of claims that issue from thisapplication, in the specific form in which such claims issue, includingany subsequent correction.

What is claimed is:
 1. A basketball system comprising: a rotatable hoopassembly including a hoop and backboard mounted to a support androtatable around a vertical axis of rotation to change an angle of thehoop and the backboard relative to a particular geo-position; at leastone programmable display device that presents a display on a surfacebased at least in part on the angle of the hoop and the backboard; andcontrol logic that sends commands to change the angle of the hoop andbackboard relative to the particular geo-position, wherein the displayon the surface adjusts based at least in part on the angle of the hoopand the backboard.
 2. The basketball system of claim 1, wherein thecontrol logic sends the commands to change the angle of the backboardbased at least in part on input received from a user.
 3. The basketballsystem of claim 2, wherein the user input defines two or more angles andtransition times between the two or more angles.
 4. The basketballsystem of claim 1, wherein the at least one programmable display deviceincludes a projector that projects lines onto the surface, wherein thelines projected by the projector change based at least in part onchanges to the angle of the hoop and the backboard such that a playerperceives shooting from different positions on a simulated basketballcourt without moving from the particular geo-position.
 5. The basketballsystem of claim 1, wherein the at least one programmable display deviceincludes a plurality of display devices embedded in or coupled to thesurface.
 6. The basketball system of claim 1, wherein the display on thesurface further adjusts based on a virtual barrier such that lines of asimulated basketball court are not projected beyond the virtual barrier.7. The basketball system of claim 1, wherein the particular geo-positionis a position from which a player is expected to shoot basketballs. 8.The basketball system of claim 1, wherein the display on the surfaceincludes at least one of lines of a simulated basketball court, a markedlocation of a virtual defender, a route for a player to take; or aposition for the player to shoot.
 9. The basketball system of claim 1,further comprising: a rebounding system assembly including a ball guidethat directs balls to the particular geo-position before and after achange to the angle of the hoop and the backboard relative to theparticular geo-position.
 10. The basketball system of claim 1, furthercomprising: a sensor that detects a position of a player on the surface;wherein the control logic sends commands to the hoop assembly to adjusta height of the hoop and backboard based at least in part on theposition of the player on the surface.
 11. One or more non-transitorycomputer-readable media storing instructions, which when executed by oneor more computing devices, cause: receiving data associated with a userof a basketball system that includes a hoop and the backboard rotatablearound a vertical axis of rotation to change an angle of the hoop andthe backboard relative to a particular geo-position; sending, based atleast in part on the data associated with the user, commands that causethe hoop and the backboard to change the angle of the hoop and thebackboard relative to a particular geo-position.
 12. The one or morenon-transitory computer-readable media of claim 11, wherein theinstructions further cause: training a model to compute a respectiveangle for the hoop and the backboard relative to the particulargeo-position based on user attributes; applying the model to the dataassociated with the user of the basketball system to determine aparticular change to the angle of the hoop and the backboard relative tothe particular geo-position; and wherein sending the commands causes thehoop and the backboard to rotate until the particular angle is reachedrelative to the particular geo-position.
 13. The one or morenon-transitory computer-readable media of claim 12, wherein applying themodel to the data associated with the user of the basketball systemincludes determining a set of one or more angles that a player has alower likelihood of making a successful shot given a set of attributesassociated with the user.
 14. The one or more non-transitorycomputer-readable media of claim 12, wherein applying the model to thedata associated with the user of the basketball system includesselecting a period of time for changing the hoop and the backboard tothe particular angle.
 15. The one or more non-transitorycomputer-readable media of claim 12, wherein applying the model to thedata associated with the user of the basketball system includesdetermining a sequence of transitions between different angles accordingto a particular pattern.
 16. The one or more non-transitorycomputer-readable media of claim 11, wherein applying the model to thedata associated with the user of the basketball system includesdetermining a set of one or more angles that a player has a lowerlikelihood of making a successful shot given a set of attributesassociated with the user.
 17. The one or more non-transitorycomputer-readable media of claim 11, wherein the data associated withthe user includes training data input by a trainer for the user.
 18. Theone or more non-transitory computer-readable media of claim 11, whereinthe commands are sent wirelessly by a mobile computing device to acontrol mechanism that controls rotation of the hoop and the backboardaround the vertical axis.
 19. The one or more non-transitorycomputer-readable media of claim 11, wherein the particular geo-positionis position from which a player is expected to shoot basketballs.
 20. Abasketball system comprising: a rotatable hoop assembly including a hoopand backboard mounted to a support and rotatable around a vertical axisof rotation to change an angle of the hoop and the backboard relative toa particular geo-position; a rebounding system assembly mounted to thesupport including a plurality of arms coupled to a material for catchingshots and a ball guide for directing balls to the particulargeo-position, wherein the rebounding system remains fixed duringrotation of the hoop and backboard such that the ball guide directsballs to the particular geo-position before and after a change to theangle of the hoop and the backboard relative to the particulargeo-position.